草庐IT

c++ - QMap 和 std::unique_ptr

全部标签

c++ - C select() 超时 STDIN 单字符(无 ENTER)

我希望能够使用select()从STDIN输入单个字符(无ENTER)。因此,当用户按下单个键时,select()应该立即返回,而不是等待用户按下ENTER。intmain(void){fd_setrfds;structtimevaltv;intretval;/*Watchstdin(fd0)toseewhenithasinput.*/FD_ZERO(&rfds);FD_SET(0,&rfds);/*Waitupto2seconds.*/tv.tv_sec=2;tv.tv_usec=0;retval=select(1,&rfds,NULL,NULL,&tv);if(retval==-1

c++ - 有没有办法从 sqlite3 对象获取数据库位置?

我的应用程序中有一堆sqlite数据库(不要问),我需要能够获取数据库的文件位置。有没有办法通过使用sqlite3对象来做到这一点?(即创建数据库时不必将路径与数据库一起存储)奖励问题:如果有多个数据库附加到sqlite3对象,我如何获得其他数据库(它们已附加)?谢谢! 最佳答案 API函数:sqlite3_db_filename 关于c++-有没有办法从sqlite3对象获取数据库位置?,我们在StackOverflow上找到一个类似的问题: https:/

c++ - 未捕获的 std::exception 在核心中不正确的堆栈跟踪

这是我的代码:#include#includeusingnamespacestd;usingnamespacestd::tr1;usingnamespacestd::tr1::placeholders;classEvent{public:typedefstd::tr1::functionHandler;voidset(Handlerh){m_handler=h;}templatevoidset(T*obj,Fmemfn){set(std::tr1::bind(memfn,obj));}voidoperator()(){m_handler();}staticvoidfire(Event*

c++ - 我们如何使用强制转换来允许将字符屏蔽为字符串?

我需要尽可能快地执行此操作数百万次。假设我有两个包含几个短char数组的列表:"ab","ac","ax",etc..."wz","wy","qb"现在我想从每个列表中形成一个组合。例如,"ab"和"wz"将变为"awbz"。似乎最有效的方法是将它们存储为32位序列:"ab"-->0x00620061"wz"-->0x7A007700现在OR他们在一起得到0x7A627761-->"awbz"我的第一个想法是使用union,但我知道这在技术上会出现未定义的行为......写入union变量的一部分,然后从union中读取不同类型。union{unsignedchar[4]c;unsig

c++ - 一个简单的 PNG 包装器。有人可以分享一个片段吗?

我正在寻找一种将图像数据缓冲区放入PNG文件的方法,以及一种将PNG文件放入缓冲区的方法。我想做的只有这两件事。这将是一个使用png.h的非常简单的包装器。好吧,由于可怕的复杂libpngAPI,这并不完全简单,但它的概念是。我之前尝试过DevIL。它比libpng更容易使用。尽管如此,我还是有issues用它。此外,DevIL做得太多。我只需要基本的PNG格式支持,而不是其他20种格式。然后我找到thispage.我称赞PixelFairy和全能的Google为我提供了一个银盘上的实现......结果这搞砸了图像:在处理后的图像中,每条扫描线中的每四个像素都丢失了。通过阅读源代码,我

c++ - 与 XBoard(国际象棋引擎)通信(C++/C)

我只是在玩弄一个基本的国际象棋引擎。我从http://web.archive.org/web/20070704121716/http://www.brucemo.com/compchess/programming/alphabeta.htm得到了很多建议,但实际站点已关闭,并非所有页面都已存档。(有人知道在哪里可以找到Bruce网站的完整版本吗?)但现在真正的问题是:我如何与XBoard通信?我知道这是通过stdin和stdout,但我在代码中遇到了问题。基本上,要开始,我只想接收来自XBoard的输入并将其打印到控制台/屏幕将硬编码输入移动到XBoard并让它移动编写实用函数并制作随

c++ - std::forward of rvalue ref to lambda?

考虑以下两个片段:附件A:templateintperform_calc(CalcFuncT&&calcfunc){precalc();intconstcalc=calcfunc();postcalc();returncalc;}intmain(){perform_calc([]{return5*foobar_x()+3;});//toFutureperform_calc([]{return5*foobar_y()-9;});//toPast}图表B:templateintperform_calc(CalcFuncT&&calcfunc){precalc();intconstcalc=

c++ - 使用 unique_ptr 离开范围时堆损坏

我遇到了类似于voidpointerreturnedfromfunctionheapcorruption的问题相似之处在于,当我离开使用unique_ptr的范围时,会收到“堆损坏”消息。这里是代码:voidCMyClass::SomeMethod(){std::unique_ptrspMyInterface;spMyInterface.reset(newCMyInterfaceObject());//CMyInterfaceObjectisderivedfromIMyInterfaceany_list.push_back(spMyInterface.get());//any_list

c++ - C++ 中的复杂矩阵指数

是否真的可以用c/c++计算复数矩阵的矩阵指数?我已经成功地使用GNU科学图书馆的blas函数计算了两个复数矩阵的乘积。对于matC=matA*matB:gsl_blas_zgemm(CblasNoTrans,CblasNoTrans,GSL_COMPLEX_ONE,matA,matB,GSL_COMPLEX_ZERO,matC);而且我已经通过使用未记录的方法获得了矩阵的矩阵指数gsl_linalg_exponential_ss(&m.matrix,&em.matrix,.01);但这似乎不接受复杂的论点。有没有办法做到这一点?我曾经认为C++无所不能。现在我认为它已经过时和神秘了…

c++ - malloc 失败条件

我正在复习c,重做一些旧的练习,并在运行此代码段时得到一些不寻常的结果(我知道它泄漏但想了解系统允许多少..)#include#includeintmain(intargc,char*argv[]){void*page=0;intindex;index=0;while(1){page=malloc(1073741824);//1GBif(!page)break;++index;}printf("memoryfailedat%d\n",index);return0;}我实际上得到:memoryfailedat131070这表明它认为它分配了131070x1GB内存(大量泄漏)我之前知道m